# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gtk+2.0
pkgver=2.24.33
pkgrel=5
pkgdesc="The GTK+ Toolkit (v2)"
url="https://www.gtk.org/"
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
triggers="gtk-update-icon-cache.trigger=/usr/share/icons/*"
arch="all"
options="!check"  # Requires xvfb, resulting in eventual circular dependency
license="LGPL-2.0-or-later"
subpackages="
	$pkgname-dbg
	gtk-update-icon-cache:icon_cache
	$pkgname-dev
	$pkgname-doc
	$pkgname-lang
	"
depends="shared-mime-info gtk-update-icon-cache"

replaces="gtk+"
replaces_dev="gtk+-dev"
replaces_doc="gtk+-doc"

depends_dev="
	at-spi2-core-dev
	cairo-dev
	intltool
	libxdamage-dev
	pango-dev
	"
# we add hicolor-icon-theme because the subpackage gtk-update-icon-cache
# needs it. We need to force hicolor-icon-cache to be built before gtk+.2.0
makedepends="
	autoconf automake libtool
	$depends_dev
	cups-dev
	expat-dev
	gdk-pixbuf-dev
	gettext-dev
	glib-dev
	gobject-introspection-dev
	gtk-doc
	hicolor-icon-theme
	libice-dev
	libx11-dev
	libxcomposite-dev
	libxcursor-dev
	libxext-dev
	libxfixes-dev
	libxrandr-dev
	libxi-dev
	zlib-dev"
source="https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz
	xid-collision-debug.patch
	gtk2-fixdso.patch
	"

builddir="$srcdir"/gtk+-$pkgver

prepare() {
	default_prepare
	libtoolize --force \
		&& aclocal -I m4 \
		&& autoconf \
		&& automake --add-missing
}

build() {
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--localstatedir=/var \
		--with-xinput=yes \
		--without-libjasper \
		--with-included-loaders=png \
		--with-gdktarget=x11 \
		--enable-cups \
		--enable-man
	# https://bugzilla.gnome.org/show_bug.cgi?id=655517
	sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
	make
}

package() {
	make DESTDIR="$pkgdir" install
}

dev() {
	mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/
	mv "$pkgdir"/usr/share/gtk-2.0 "$subpkgdir"/usr/share/
	default_dev
	replaces="gtk+2.0"
	mv "$pkgdir"/usr/bin/gtk-builder-convert \
		"$pkgdir"/usr/bin/gtk-demo \
		"$subpkgdir"/usr/bin
}

icon_cache() {
	depends="hicolor-icon-theme"
	replaces="gtk4.0" # gtk4-update-icon-cache

	# provide gtk4 symlink too
	amove usr/bin/gtk-update-icon-cache
	ln -s gtk-update-icon-cache "$subpkgdir"/usr/bin/gtk4-update-icon-cache
}

sha512sums="71b588797c81f727dfac8dcb1be193f7436f717d30ecf18eae2d3aeb0f445b3be4743400acac16435490db8f564f01032065d3f42d27871317f80c98aef929d5  gtk+-2.24.33.tar.xz
89e3223c86731a76b12d39245f1ec4cf8b4860ab1d11d74a10e5deb0db302f20b4bb5d9034da1d8aeb96369dbdeddcdd2f28943270dc501476c694562b960159  xid-collision-debug.patch
95f28633a5164a2a9fec45ee1aa80bd1c07e0c5a7ac8d770b9c74af0909b7286b823eb634aa384cad609dc8799d2e6c9e8392c2732b9093076fdf94b4f6878b7  gtk2-fixdso.patch"
